package co.udea.businesslogic.imp;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;

import co.edu.udea.dao.DispositivoDao;
import co.edu.udea.model.Dispositivo;
import exceptions.ExecptionRTF;


/**
 * 
 * @author Cristina Isabel Mejia
 *
 */
public class ServicioDispositivo {

	private Logger log = Logger.getLogger(this.getClass());	
	
	/**
	 * Metodos accesores del servicio
	 */
	@Autowired
	private DispositivoDao dispositivoDao;

	public DispositivoDao getDispositivoDao() {
		return dispositivoDao;
	}

	public void setDispositivoDao(DispositivoDao dispositivoDao) {
		this.dispositivoDao = dispositivoDao;
	}
	
	/**
	 * 
	 * @param Dispositivo disp a agudar
	 * @return retorna el dispositivo si se guardo correctamente
	 * @throws ExecptionRTF
	 */
	public Dispositivo agregarDispositivo(Dispositivo disp) throws ExecptionRTF {
		return dispositivoDao.agregarDispositivo(disp);
	}
	
	/**
	 * 
	 * @param Dispositivo disp a eliminar
	 * @return True o False si esl dispositivo fue eliminado correctamente
	 * @throws ExecptionRTF
	 */
	public boolean eliminarDispositivo(Dispositivo disp) throws ExecptionRTF {
		return dispositivoDao.eliminarDispositivo(disp);
	}
	
	/**
	 * 
	 * @param Dispositivo disp al cual se le actualizara el estado
	 * @return El dispositivo actualizado si el update fue satisfactorio
	 * @throws ExecptionRTF
	 */
	public Dispositivo cambiarEstadoDispositivo(Dispositivo disp) throws ExecptionRTF {
		return dispositivoDao.cambiarEstadoDispositivo(disp);
	}
	
	/**
	 * 
	 * @param codigoDispositivo el cual se verificara el estado
	 * @return el disposito que tiene el estado 
	 * @throws ExecptionRTF
	 */
	public Dispositivo consultarDisponibilidadDispositivo(String codigoDispositivo) throws ExecptionRTF {
		return dispositivoDao.consultarDisponibilidadDispositivo(codigoDispositivo);
	}
	
	/**
	 * 
	 * @param codigoDisp el que permita consultar el dispositivo
	 * @return el dispositivo asociado al codigo dado
	 * @throws ExecptionRTF
	 */
	public Dispositivo consultarDispositivo(String codigoDisp) throws ExecptionRTF {
		return dispositivoDao.consultarDispositivo(codigoDisp);
	}
	
}
